const baseURL= 'https://api-ugo-web.itheima.net/api/public/v1'
// 配置项
const conf = {
    header:{}
}
// 请求拦截器
const requestHandler = (config)=>{
        // 判断请求的是否为有权限的 API 接口
        if (config.url.indexOf('/my/') !== -1) {
            console.log(config);
            // 为请求头添加身份认证字段
            config.header.Authorization =  wx.getStorageSync('token') || '';
      
          }
    wx.showLoading({
      title: '加载中',
    })
}
// 响应拦截器
const responseHandler = (res)=>{
    wx.hideLoading()
}
export const request = (method = 'GET',url, data) => {
    conf.method = method
    conf.data = data
    conf.url = url
    //请求拦截器
    requestHandler && requestHandler(conf)
    // 新 new Promise() 创建的 Promise 对象的状态是 pending 待定状态
    return new Promise((resolve, reject) => {
      wx.request({
        url: baseURL + url, // 在访问接口前拼接统一的 baseURL
        data, // 请求发送给后端的数据
        header: { // 请求头
          ...conf.header,
          'X-Token': 'token string.............', // 携带 token 认证字段
        },
        timeout: 5000, // 请求超时时间
        method, // 请求方法，默认为 GET
        success: res => { // 请求成功的回调函数
        responseHandler&&responseHandler(res)
          if (res.statusCode === 200) { // HTTP状态码为 200 表示 OK
              return resolve(res)
            // res.data 中保存的是后端向前端返回的数据
            // 通常后端与前端交互时有统一的规范，比如返回一个对象，有 code 与 data、message 属性。
            // 当前接口规范中，code 为 200 表示后端向前端返回成功的数据。
            // 返回的数据在 data 属性中。
          //   const {code, data} = res.data
          //   if (code === 200) {
          //     resolve(data) // 将 Promise 的状态修改为 fulfilled 成功状态，并携带成功的数据
          //     return
          //   }
          }
          // 如果 HTTP 状态码或后端返回的 code 表示有误时，将
          // Promise 状态修改为 rejected 失败状态，携带失败原因。
          // const error = new Error('接口访问有误')
          // reject(error)
        },
        fail: err => { // 请求失败
          // 将 Promise 状态标记为失败状态
          responseHandler&&responseHandler(err)
          reject(err)
        },
      })
    })
  }




